use std::os::raw::c_uint;

pub const AKEYCODE_UNKNOWN: c_uint = 0;
pub const AKEYCODE_SOFT_LEFT: c_uint = 1;
pub const AKEYCODE_SOFT_RIGHT: c_uint = 2;
pub const AKEYCODE_HOME: c_uint = 3;
pub const AKEYCODE_BACK: c_uint = 4;
pub const AKEYCODE_CALL: c_uint = 5;
pub const AKEYCODE_ENDCALL: c_uint = 6;
pub const AKEYCODE_0: c_uint = 7;
pub const AKEYCODE_1: c_uint = 8;
pub const AKEYCODE_2: c_uint = 9;
pub const AKEYCODE_3: c_uint = 10;
pub const AKEYCODE_4: c_uint = 11;
pub const AKEYCODE_5: c_uint = 12;
pub const AKEYCODE_6: c_uint = 13;
pub const AKEYCODE_7: c_uint = 14;
pub const AKEYCODE_8: c_uint = 15;
pub const AKEYCODE_9: c_uint = 16;
pub const AKEYCODE_STAR: c_uint = 17;
pub const AKEYCODE_POUND: c_uint = 18;
pub const AKEYCODE_DPAD_UP: c_uint = 19;
pub const AKEYCODE_DPAD_DOWN: c_uint = 20;
pub const AKEYCODE_DPAD_LEFT: c_uint = 21;
pub const AKEYCODE_DPAD_RIGHT: c_uint = 22;
pub const AKEYCODE_DPAD_CENTER: c_uint = 23;
pub const AKEYCODE_VOLUME_UP: c_uint = 24;
pub const AKEYCODE_VOLUME_DOWN: c_uint = 25;
pub const AKEYCODE_POWER: c_uint = 26;
pub const AKEYCODE_CAMERA: c_uint = 27;
pub const AKEYCODE_CLEAR: c_uint = 28;
pub const AKEYCODE_A: c_uint = 29;
pub const AKEYCODE_B: c_uint = 30;
pub const AKEYCODE_C: c_uint = 31;
pub const AKEYCODE_D: c_uint = 32;
pub const AKEYCODE_E: c_uint = 33;
pub const AKEYCODE_F: c_uint = 34;
pub const AKEYCODE_G: c_uint = 35;
pub const AKEYCODE_H: c_uint = 36;
pub const AKEYCODE_I: c_uint = 37;
pub const AKEYCODE_J: c_uint = 38;
pub const AKEYCODE_K: c_uint = 39;
pub const AKEYCODE_L: c_uint = 40;
pub const AKEYCODE_M: c_uint = 41;
pub const AKEYCODE_N: c_uint = 42;
pub const AKEYCODE_O: c_uint = 43;
pub const AKEYCODE_P: c_uint = 44;
pub const AKEYCODE_Q: c_uint = 45;
pub const AKEYCODE_R: c_uint = 46;
pub const AKEYCODE_S: c_uint = 47;
pub const AKEYCODE_T: c_uint = 48;
pub const AKEYCODE_U: c_uint = 49;
pub const AKEYCODE_V: c_uint = 50;
pub const AKEYCODE_W: c_uint = 51;
pub const AKEYCODE_X: c_uint = 52;
pub const AKEYCODE_Y: c_uint = 53;
pub const AKEYCODE_Z: c_uint = 54;
pub const AKEYCODE_COMMA: c_uint = 55;
pub const AKEYCODE_PERIOD: c_uint = 56;
pub const AKEYCODE_ALT_LEFT: c_uint = 57;
pub const AKEYCODE_ALT_RIGHT: c_uint = 58;
pub const AKEYCODE_SHIFT_LEFT: c_uint = 59;
pub const AKEYCODE_SHIFT_RIGHT: c_uint = 60;
pub const AKEYCODE_TAB: c_uint = 61;
pub const AKEYCODE_SPACE: c_uint = 62;
pub const AKEYCODE_SYM: c_uint = 63;
pub const AKEYCODE_EXPLORER: c_uint = 64;
pub const AKEYCODE_ENVELOPE: c_uint = 65;
pub const AKEYCODE_ENTER: c_uint = 66;
pub const AKEYCODE_DEL: c_uint = 67;
pub const AKEYCODE_GRAVE: c_uint = 68;
pub const AKEYCODE_MINUS: c_uint = 69;
pub const AKEYCODE_EQUALS: c_uint = 70;
pub const AKEYCODE_LEFT_BRACKET: c_uint = 71;
pub const AKEYCODE_RIGHT_BRACKET: c_uint = 72;
pub const AKEYCODE_BACKSLASH: c_uint = 73;
pub const AKEYCODE_SEMICOLON: c_uint = 74;
pub const AKEYCODE_APOSTROPHE: c_uint = 75;
pub const AKEYCODE_SLASH: c_uint = 76;
pub const AKEYCODE_AT: c_uint = 77;
pub const AKEYCODE_NUM: c_uint = 78;
pub const AKEYCODE_HEADSETHOOK: c_uint = 79;
pub const AKEYCODE_FOCUS: c_uint = 80;
pub const AKEYCODE_PLUS: c_uint = 81;
pub const AKEYCODE_MENU: c_uint = 82;
pub const AKEYCODE_NOTIFICATION: c_uint = 83;
pub const AKEYCODE_SEARCH: c_uint = 84;
pub const AKEYCODE_MEDIA_PLAY_PAUSE: c_uint = 85;
pub const AKEYCODE_MEDIA_STOP: c_uint = 86;
pub const AKEYCODE_MEDIA_NEXT: c_uint = 87;
pub const AKEYCODE_MEDIA_PREVIOUS: c_uint = 88;
pub const AKEYCODE_MEDIA_REWIND: c_uint = 89;
pub const AKEYCODE_MEDIA_FAST_FORWARD: c_uint = 90;
pub const AKEYCODE_MUTE: c_uint = 91;
pub const AKEYCODE_PAGE_UP: c_uint = 92;
pub const AKEYCODE_PAGE_DOWN: c_uint = 93;
pub const AKEYCODE_PICTSYMBOLS: c_uint = 94;
pub const AKEYCODE_SWITCH_CHARSET: c_uint = 95;
pub const AKEYCODE_BUTTON_A: c_uint = 96;
pub const AKEYCODE_BUTTON_B: c_uint = 97;
pub const AKEYCODE_BUTTON_C: c_uint = 98;
pub const AKEYCODE_BUTTON_X: c_uint = 99;
pub const AKEYCODE_BUTTON_Y: c_uint = 100;
pub const AKEYCODE_BUTTON_Z: c_uint = 101;
pub const AKEYCODE_BUTTON_L1: c_uint = 102;
pub const AKEYCODE_BUTTON_R1: c_uint = 103;
pub const AKEYCODE_BUTTON_L2: c_uint = 104;
pub const AKEYCODE_BUTTON_R2: c_uint = 105;
pub const AKEYCODE_BUTTON_THUMBL: c_uint = 106;
pub const AKEYCODE_BUTTON_THUMBR: c_uint = 107;
pub const AKEYCODE_BUTTON_START: c_uint = 108;
pub const AKEYCODE_BUTTON_SELECT: c_uint = 109;
pub const AKEYCODE_BUTTON_MODE: c_uint = 110;
pub const AKEYCODE_ESCAPE: c_uint = 111;
pub const AKEYCODE_FORWARD_DEL: c_uint = 112;
pub const AKEYCODE_CTRL_LEFT: c_uint = 113;
pub const AKEYCODE_CTRL_RIGHT: c_uint = 114;
pub const AKEYCODE_CAPS_LOCK: c_uint = 115;
pub const AKEYCODE_SCROLL_LOCK: c_uint = 116;
pub const AKEYCODE_META_LEFT: c_uint = 117;
pub const AKEYCODE_META_RIGHT: c_uint = 118;
pub const AKEYCODE_FUNCTION: c_uint = 119;
pub const AKEYCODE_SYSRQ: c_uint = 120;
pub const AKEYCODE_BREAK: c_uint = 121;
pub const AKEYCODE_MOVE_HOME: c_uint = 122;
pub const AKEYCODE_MOVE_END: c_uint = 123;
pub const AKEYCODE_INSERT: c_uint = 124;
pub const AKEYCODE_FORWARD: c_uint = 125;
pub const AKEYCODE_MEDIA_PLAY: c_uint = 126;
pub const AKEYCODE_MEDIA_PAUSE: c_uint = 127;
pub const AKEYCODE_MEDIA_CLOSE: c_uint = 128;
pub const AKEYCODE_MEDIA_EJECT: c_uint = 129;
pub const AKEYCODE_MEDIA_RECORD: c_uint = 130;
pub const AKEYCODE_F1: c_uint = 131;
pub const AKEYCODE_F2: c_uint = 132;
pub const AKEYCODE_F3: c_uint = 133;
pub const AKEYCODE_F4: c_uint = 134;
pub const AKEYCODE_F5: c_uint = 135;
pub const AKEYCODE_F6: c_uint = 136;
pub const AKEYCODE_F7: c_uint = 137;
pub const AKEYCODE_F8: c_uint = 138;
pub const AKEYCODE_F9: c_uint = 139;
pub const AKEYCODE_F10: c_uint = 140;
pub const AKEYCODE_F11: c_uint = 141;
pub const AKEYCODE_F12: c_uint = 142;
pub const AKEYCODE_NUM_LOCK: c_uint = 143;
pub const AKEYCODE_NUMPAD_0: c_uint = 144;
pub const AKEYCODE_NUMPAD_1: c_uint = 145;
pub const AKEYCODE_NUMPAD_2: c_uint = 146;
pub const AKEYCODE_NUMPAD_3: c_uint = 147;
pub const AKEYCODE_NUMPAD_4: c_uint = 148;
pub const AKEYCODE_NUMPAD_5: c_uint = 149;
pub const AKEYCODE_NUMPAD_6: c_uint = 150;
pub const AKEYCODE_NUMPAD_7: c_uint = 151;
pub const AKEYCODE_NUMPAD_8: c_uint = 152;
pub const AKEYCODE_NUMPAD_9: c_uint = 153;
pub const AKEYCODE_NUMPAD_DIVIDE: c_uint = 154;
pub const AKEYCODE_NUMPAD_MULTIPLY: c_uint = 155;
pub const AKEYCODE_NUMPAD_SUBTRACT: c_uint = 156;
pub const AKEYCODE_NUMPAD_ADD: c_uint = 157;
pub const AKEYCODE_NUMPAD_DOT: c_uint = 158;
pub const AKEYCODE_NUMPAD_COMMA: c_uint = 159;
pub const AKEYCODE_NUMPAD_ENTER: c_uint = 160;
pub const AKEYCODE_NUMPAD_EQUALS: c_uint = 161;
pub const AKEYCODE_NUMPAD_LEFT_PAREN: c_uint = 162;
pub const AKEYCODE_NUMPAD_RIGHT_PAREN: c_uint = 163;
pub const AKEYCODE_VOLUME_MUTE: c_uint = 164;
pub const AKEYCODE_INFO: c_uint = 165;
pub const AKEYCODE_CHANNEL_UP: c_uint = 166;
pub const AKEYCODE_CHANNEL_DOWN: c_uint = 167;
pub const AKEYCODE_ZOOM_IN: c_uint = 168;
pub const AKEYCODE_ZOOM_OUT: c_uint = 169;
pub const AKEYCODE_TV: c_uint = 170;
pub const AKEYCODE_WINDOW: c_uint = 171;
pub const AKEYCODE_GUIDE: c_uint = 172;
pub const AKEYCODE_DVR: c_uint = 173;
pub const AKEYCODE_BOOKMARK: c_uint = 174;
pub const AKEYCODE_CAPTIONS: c_uint = 175;
pub const AKEYCODE_SETTINGS: c_uint = 176;
pub const AKEYCODE_TV_POWER: c_uint = 177;
pub const AKEYCODE_TV_INPUT: c_uint = 178;
pub const AKEYCODE_STB_POWER: c_uint = 179;
pub const AKEYCODE_STB_INPUT: c_uint = 180;
pub const AKEYCODE_AVR_POWER: c_uint = 181;
pub const AKEYCODE_AVR_INPUT: c_uint = 182;
pub const AKEYCODE_PROG_RED: c_uint = 183;
pub const AKEYCODE_PROG_GREEN: c_uint = 184;
pub const AKEYCODE_PROG_YELLOW: c_uint = 185;
pub const AKEYCODE_PROG_BLUE: c_uint = 186;
pub const AKEYCODE_APP_SWITCH: c_uint = 187;
pub const AKEYCODE_BUTTON_1: c_uint = 188;
pub const AKEYCODE_BUTTON_2: c_uint = 189;
pub const AKEYCODE_BUTTON_3: c_uint = 190;
pub const AKEYCODE_BUTTON_4: c_uint = 191;
pub const AKEYCODE_BUTTON_5: c_uint = 192;
pub const AKEYCODE_BUTTON_6: c_uint = 193;
pub const AKEYCODE_BUTTON_7: c_uint = 194;
pub const AKEYCODE_BUTTON_8: c_uint = 195;
pub const AKEYCODE_BUTTON_9: c_uint = 196;
pub const AKEYCODE_BUTTON_10: c_uint = 197;
pub const AKEYCODE_BUTTON_11: c_uint = 198;
pub const AKEYCODE_BUTTON_12: c_uint = 199;
pub const AKEYCODE_BUTTON_13: c_uint = 200;
pub const AKEYCODE_BUTTON_14: c_uint = 201;
pub const AKEYCODE_BUTTON_15: c_uint = 202;
pub const AKEYCODE_BUTTON_16: c_uint = 203;
pub const AKEYCODE_LANGUAGE_SWITCH: c_uint = 204;
pub const AKEYCODE_MANNER_MODE: c_uint = 205;
pub const AKEYCODE_3D_MODE: c_uint = 206;
pub const AKEYCODE_CONTACTS: c_uint = 207;
pub const AKEYCODE_CALENDAR: c_uint = 208;
pub const AKEYCODE_MUSIC: c_uint = 209;
pub const AKEYCODE_CALCULATOR: c_uint = 210;
pub const AKEYCODE_ZENKAKU_HANKAKU: c_uint = 211;
pub const AKEYCODE_EISU: c_uint = 212;
pub const AKEYCODE_MUHENKAN: c_uint = 213;
pub const AKEYCODE_HENKAN: c_uint = 214;
pub const AKEYCODE_KATAKANA_HIRAGANA: c_uint = 215;
pub const AKEYCODE_YEN: c_uint = 216;
pub const AKEYCODE_RO: c_uint = 217;
pub const AKEYCODE_KANA: c_uint = 218;
pub const AKEYCODE_ASSIST: c_uint = 219;
pub const AKEYCODE_BRIGHTNESS_DOWN: c_uint = 220;
pub const AKEYCODE_BRIGHTNESS_UP: c_uint = 221;
pub const AKEYCODE_MEDIA_AUDIO_TRACK: c_uint = 222;
pub const AKEYCODE_SLEEP: c_uint = 223;
pub const AKEYCODE_WAKEUP: c_uint = 224;
pub const AKEYCODE_PAIRING: c_uint = 225;
pub const AKEYCODE_MEDIA_TOP_MENU: c_uint = 226;
pub const AKEYCODE_11: c_uint = 227;
pub const AKEYCODE_12: c_uint = 228;
pub const AKEYCODE_LAST_CHANNEL: c_uint = 229;
pub const AKEYCODE_TV_DATA_SERVICE: c_uint = 230;
pub const AKEYCODE_VOICE_ASSIST: c_uint = 231;
pub const AKEYCODE_TV_RADIO_SERVICE: c_uint = 232;
pub const AKEYCODE_TV_TELETEXT: c_uint = 233;
pub const AKEYCODE_TV_NUMBER_ENTRY: c_uint = 234;
pub const AKEYCODE_TV_TERRESTRIAL_ANALOG: c_uint = 235;
pub const AKEYCODE_TV_TERRESTRIAL_DIGITAL: c_uint = 236;
pub const AKEYCODE_TV_SATELLITE: c_uint = 237;
pub const AKEYCODE_TV_SATELLITE_BS: c_uint = 238;
pub const AKEYCODE_TV_SATELLITE_CS: c_uint = 239;
pub const AKEYCODE_TV_SATELLITE_SERVICE: c_uint = 240;
pub const AKEYCODE_TV_NETWORK: c_uint = 241;
pub const AKEYCODE_TV_ANTENNA_CABLE: c_uint = 242;
pub const AKEYCODE_TV_INPUT_HDMI_1: c_uint = 243;
pub const AKEYCODE_TV_INPUT_HDMI_2: c_uint = 244;
pub const AKEYCODE_TV_INPUT_HDMI_3: c_uint = 245;
pub const AKEYCODE_TV_INPUT_HDMI_4: c_uint = 246;
pub const AKEYCODE_TV_INPUT_COMPOSITE_1: c_uint = 247;
pub const AKEYCODE_TV_INPUT_COMPOSITE_2: c_uint = 248;
pub const AKEYCODE_TV_INPUT_COMPONENT_1: c_uint = 249;
pub const AKEYCODE_TV_INPUT_COMPONENT_2: c_uint = 250;
pub const AKEYCODE_TV_INPUT_VGA_1: c_uint = 251;
pub const AKEYCODE_TV_AUDIO_DESCRIPTION: c_uint = 252;
pub const AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP: c_uint = 253;
pub const AKEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN: c_uint = 254;
pub const AKEYCODE_TV_ZOOM_MODE: c_uint = 255;
pub const AKEYCODE_TV_CONTENTS_MENU: c_uint = 256;
pub const AKEYCODE_TV_MEDIA_CONTEXT_MENU: c_uint = 257;
pub const AKEYCODE_TV_TIMER_PROGRAMMING: c_uint = 258;
pub const AKEYCODE_HELP: c_uint = 259;
pub const AKEYCODE_NAVIGATE_PREVIOUS: c_uint = 260;
pub const AKEYCODE_NAVIGATE_NEXT: c_uint = 261;
pub const AKEYCODE_NAVIGATE_IN: c_uint = 262;
pub const AKEYCODE_NAVIGATE_OUT: c_uint = 263;
pub const AKEYCODE_STEM_PRIMARY: c_uint = 264;
pub const AKEYCODE_STEM_1: c_uint = 265;
pub const AKEYCODE_STEM_2: c_uint = 266;
pub const AKEYCODE_STEM_3: c_uint = 267;
pub const AKEYCODE_DPAD_UP_LEFT: c_uint = 268;
pub const AKEYCODE_DPAD_DOWN_LEFT: c_uint = 269;
pub const AKEYCODE_DPAD_UP_RIGHT: c_uint = 270;
pub const AKEYCODE_DPAD_DOWN_RIGHT: c_uint = 271;
pub const AKEYCODE_MEDIA_SKIP_FORWARD: c_uint = 272;
pub const AKEYCODE_MEDIA_SKIP_BACKWARD: c_uint = 273;
pub const AKEYCODE_MEDIA_STEP_FORWARD: c_uint = 274;
pub const AKEYCODE_MEDIA_STEP_BACKWARD: c_uint = 275;
pub const AKEYCODE_SOFT_SLEEP: c_uint = 276;
pub const AKEYCODE_CUT: c_uint = 277;
pub const AKEYCODE_COPY: c_uint = 278;
pub const AKEYCODE_PASTE: c_uint = 279;
pub const AKEYCODE_SYSTEM_NAVIGATION_UP: c_uint = 280;
pub const AKEYCODE_SYSTEM_NAVIGATION_DOWN: c_uint = 281;
pub const AKEYCODE_SYSTEM_NAVIGATION_LEFT: c_uint = 282;
pub const AKEYCODE_SYSTEM_NAVIGATION_RIGHT: c_uint = 283;
pub const AKEYCODE_ALL_APPS: c_uint = 284;
pub const AKEYCODE_REFRESH: c_uint = 285;
pub const AKEYCODE_THUMBS_UP: c_uint = 286;
pub const AKEYCODE_THUMBS_DOWN: c_uint = 287;
pub const AKEYCODE_PROFILE_SWITCH: c_uint = 288;
pub const AKEYCODE_VIDEO_APP_1: c_uint = 289;
pub const AKEYCODE_VIDEO_APP_2: c_uint = 290;
pub const AKEYCODE_VIDEO_APP_3: c_uint = 291;
pub const AKEYCODE_VIDEO_APP_4: c_uint = 292;
pub const AKEYCODE_VIDEO_APP_5: c_uint = 293;
pub const AKEYCODE_VIDEO_APP_6: c_uint = 294;
pub const AKEYCODE_VIDEO_APP_7: c_uint = 295;
pub const AKEYCODE_VIDEO_APP_8: c_uint = 296;
pub const AKEYCODE_FEATURED_APP_1: c_uint = 297;
pub const AKEYCODE_FEATURED_APP_2: c_uint = 298;
pub const AKEYCODE_FEATURED_APP_3: c_uint = 299;
pub const AKEYCODE_FEATURED_APP_4: c_uint = 300;
pub const AKEYCODE_DEMO_APP_1: c_uint = 301;
pub const AKEYCODE_DEMO_APP_2: c_uint = 302;
pub const AKEYCODE_DEMO_APP_3: c_uint = 303;
pub const AKEYCODE_DEMO_APP_4: c_uint = 304;
pub const AKEYCODE_KEYBOARD_BACKLIGHT_DOWN: c_uint = 305;
pub const AKEYCODE_KEYBOARD_BACKLIGHT_UP: c_uint = 306;
pub const AKEYCODE_KEYBOARD_BACKLIGHT_TOGGLE: c_uint = 307;
pub const AKEYCODE_STYLUS_BUTTON_PRIMARY: c_uint = 308;
pub const AKEYCODE_STYLUS_BUTTON_SECONDARY: c_uint = 309;
pub const AKEYCODE_STYLUS_BUTTON_TERTIARY: c_uint = 310;
pub const AKEYCODE_STYLUS_BUTTON_TAIL: c_uint = 311;
pub const AKEYCODE_RECENT_APPS: c_uint = 312;
pub const AKEYCODE_MACRO_1: c_uint = 313;
pub const AKEYCODE_MACRO_2: c_uint = 314;
pub const AKEYCODE_MACRO_3: c_uint = 315;
pub const AKEYCODE_MACRO_4: c_uint = 316;

pub const AMOTION_EVENT_AXIS_X: c_uint = 0;
/** Axis constant: Y axis of a motion event.

- For a touch screen, reports the absolute Y screen position of the center of
the touch contact area.  The units are display pixels.
- For a touch pad, reports the absolute Y surface position of the center of the touch
contact area. The units are device-dependent.
- For a mouse, reports the absolute Y screen position of the mouse pointer.
The units are display pixels.
- For a trackball, reports the relative vertical displacement of the trackball.
The value is normalized to a range from -1.0 (up) to 1.0 (down).
- For a joystick, reports the absolute Y position of the joystick.
The value is normalized to a range from -1.0 (up or far) to 1.0 (down or near).*/
pub const AMOTION_EVENT_AXIS_Y: c_uint = 1;
/** Axis constant: Pressure axis of a motion event.

- For a touch screen or touch pad, reports the approximate pressure applied to the surface
by a finger or other tool.  The value is normalized to a range from
0 (no pressure at all) to 1 (normal pressure), although values higher than 1
may be generated depending on the calibration of the input device.
- For a trackball, the value is set to 1 if the trackball button is pressed
or 0 otherwise.
- For a mouse, the value is set to 1 if the primary mouse button is pressed
or 0 otherwise.*/
pub const AMOTION_EVENT_AXIS_PRESSURE: c_uint = 2;
/** Axis constant: Size axis of a motion event.

- For a touch screen or touch pad, reports the approximate size of the contact area in
relation to the maximum detectable size for the device.  The value is normalized
to a range from 0 (smallest detectable size) to 1 (largest detectable size),
although it is not a linear scale. This value is of limited use.
To obtain calibrated size information, see
{@link AMOTION_EVENT_AXIS_TOUCH_MAJOR} or {@link AMOTION_EVENT_AXIS_TOOL_MAJOR}.*/
pub const AMOTION_EVENT_AXIS_SIZE: c_uint = 3;
/** Axis constant: TouchMajor axis of a motion event.

- For a touch screen, reports the length of the major axis of an ellipse that
represents the touch area at the point of contact.
The units are display pixels.
- For a touch pad, reports the length of the major axis of an ellipse that
represents the touch area at the point of contact.
The units are device-dependent.*/
pub const AMOTION_EVENT_AXIS_TOUCH_MAJOR: c_uint = 4;
/** Axis constant: TouchMinor axis of a motion event.

- For a touch screen, reports the length of the minor axis of an ellipse that
represents the touch area at the point of contact.
The units are display pixels.
- For a touch pad, reports the length of the minor axis of an ellipse that
represents the touch area at the point of contact.
The units are device-dependent.

When the touch is circular, the major and minor axis lengths will be equal to one another.*/
pub const AMOTION_EVENT_AXIS_TOUCH_MINOR: c_uint = 5;
/** Axis constant: ToolMajor axis of a motion event.

- For a touch screen, reports the length of the major axis of an ellipse that
represents the size of the approaching finger or tool used to make contact.
- For a touch pad, reports the length of the major axis of an ellipse that
represents the size of the approaching finger or tool used to make contact.
The units are device-dependent.

When the touch is circular, the major and minor axis lengths will be equal to one another.

The tool size may be larger than the touch size since the tool may not be fully
in contact with the touch sensor.*/
pub const AMOTION_EVENT_AXIS_TOOL_MAJOR: c_uint = 6;
/** Axis constant: ToolMinor axis of a motion event.

- For a touch screen, reports the length of the minor axis of an ellipse that
represents the size of the approaching finger or tool used to make contact.
- For a touch pad, reports the length of the minor axis of an ellipse that
represents the size of the approaching finger or tool used to make contact.
The units are device-dependent.

When the touch is circular, the major and minor axis lengths will be equal to one another.

The tool size may be larger than the touch size since the tool may not be fully
in contact with the touch sensor.*/
pub const AMOTION_EVENT_AXIS_TOOL_MINOR: c_uint = 7;
/** Axis constant: Orientation axis of a motion event.

- For a touch screen or touch pad, reports the orientation of the finger
or tool in radians relative to the vertical plane of the device.
An angle of 0 radians indicates that the major axis of contact is oriented
upwards, is perfectly circular or is of unknown orientation.  A positive angle
indicates that the major axis of contact is oriented to the right.  A negative angle
indicates that the major axis of contact is oriented to the left.
The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
(finger pointing fully right).
- For a stylus, the orientation indicates the direction in which the stylus
is pointing in relation to the vertical axis of the current orientation of the screen.
The range is from -PI radians to PI radians, where 0 is pointing up,
-PI/2 radians is pointing left, -PI or PI radians is pointing down, and PI/2 radians
is pointing right.  See also #AMOTION_EVENT_AXIS_TILT.*/
pub const AMOTION_EVENT_AXIS_ORIENTATION: c_uint = 8;
/** Axis constant: Vertical Scroll axis of a motion event.

- For a mouse, reports the relative movement of the vertical scroll wheel.
The value is normalized to a range from -1.0 (down) to 1.0 (up).

This axis should be used to scroll views vertically.*/
pub const AMOTION_EVENT_AXIS_VSCROLL: c_uint = 9;
/** Axis constant: Horizontal Scroll axis of a motion event.

- For a mouse, reports the relative movement of the horizontal scroll wheel.
The value is normalized to a range from -1.0 (left) to 1.0 (right).

This axis should be used to scroll views horizontally.*/
pub const AMOTION_EVENT_AXIS_HSCROLL: c_uint = 10;
/** Axis constant: Z axis of a motion event.

- For a joystick, reports the absolute Z position of the joystick.
The value is normalized to a range from -1.0 (high) to 1.0 (low).
<em>On game pads with two analog joysticks, this axis is often reinterpreted
to report the absolute X position of the second joystick instead.</em>*/
pub const AMOTION_EVENT_AXIS_Z: c_uint = 11;
/** Axis constant: X Rotation axis of a motion event.

- For a joystick, reports the absolute rotation angle about the X axis.
The value is normalized to a range from -1.0 (counter-clockwise) to 1.0 (clockwise).*/
pub const AMOTION_EVENT_AXIS_RX: c_uint = 12;
/** Axis constant: Y Rotation axis of a motion event.

- For a joystick, reports the absolute rotation angle about the Y axis.
The value is normalized to a range from -1.0 (counter-clockwise) to 1.0 (clockwise).*/
pub const AMOTION_EVENT_AXIS_RY: c_uint = 13;
/** Axis constant: Z Rotation axis of a motion event.

- For a joystick, reports the absolute rotation angle about the Z axis.
The value is normalized to a range from -1.0 (counter-clockwise) to 1.0 (clockwise).
On game pads with two analog joysticks, this axis is often reinterpreted
to report the absolute Y position of the second joystick instead.*/
pub const AMOTION_EVENT_AXIS_RZ: c_uint = 14;
/** Axis constant: Hat X axis of a motion event.

- For a joystick, reports the absolute X position of the directional hat control.
The value is normalized to a range from -1.0 (left) to 1.0 (right).*/
pub const AMOTION_EVENT_AXIS_HAT_X: c_uint = 15;
/** Axis constant: Hat Y axis of a motion event.

- For a joystick, reports the absolute Y position of the directional hat control.
The value is normalized to a range from -1.0 (up) to 1.0 (down).*/
pub const AMOTION_EVENT_AXIS_HAT_Y: c_uint = 16;
/** Axis constant: Left Trigger axis of a motion event.

- For a joystick, reports the absolute position of the left trigger control.
The value is normalized to a range from 0.0 (released) to 1.0 (fully pressed).*/
pub const AMOTION_EVENT_AXIS_LTRIGGER: c_uint = 17;
/** Axis constant: Right Trigger axis of a motion event.

- For a joystick, reports the absolute position of the right trigger control.
The value is normalized to a range from 0.0 (released) to 1.0 (fully pressed).*/
pub const AMOTION_EVENT_AXIS_RTRIGGER: c_uint = 18;
/** Axis constant: Throttle axis of a motion event.

- For a joystick, reports the absolute position of the throttle control.
The value is normalized to a range from 0.0 (fully open) to 1.0 (fully closed).*/
pub const AMOTION_EVENT_AXIS_THROTTLE: c_uint = 19;
/** Axis constant: Rudder axis of a motion event.

- For a joystick, reports the absolute position of the rudder control.
The value is normalized to a range from -1.0 (turn left) to 1.0 (turn right).*/
pub const AMOTION_EVENT_AXIS_RUDDER: c_uint = 20;
/** Axis constant: Wheel axis of a motion event.

- For a joystick, reports the absolute position of the steering wheel control.
The value is normalized to a range from -1.0 (turn left) to 1.0 (turn right).*/
pub const AMOTION_EVENT_AXIS_WHEEL: c_uint = 21;
/** Axis constant: Gas axis of a motion event.

- For a joystick, reports the absolute position of the gas (accelerator) control.
The value is normalized to a range from 0.0 (no acceleration)
to 1.0 (maximum acceleration).*/
pub const AMOTION_EVENT_AXIS_GAS: c_uint = 22;
/** Axis constant: Brake axis of a motion event.

- For a joystick, reports the absolute position of the brake control.
The value is normalized to a range from 0.0 (no braking) to 1.0 (maximum braking).*/
pub const AMOTION_EVENT_AXIS_BRAKE: c_uint = 23;
/** Axis constant: Distance axis of a motion event.

- For a stylus, reports the distance of the stylus from the screen.
A value of 0.0 indicates direct contact and larger values indicate increasing
distance from the surface.*/
pub const AMOTION_EVENT_AXIS_DISTANCE: c_uint = 24;
/** Axis constant: Tilt axis of a motion event.

- For a stylus, reports the tilt angle of the stylus in radians where
0 radians indicates that the stylus is being held perpendicular to the
surface, and PI/2 radians indicates that the stylus is being held flat
against the surface.*/
pub const AMOTION_EVENT_AXIS_TILT: c_uint = 25;
/** Axis constant:  Generic scroll axis of a motion event.

- This is used for scroll axis motion events that can't be classified as strictly
  vertical or horizontal. The movement of a rotating scroller is an example of this.*/
pub const AMOTION_EVENT_AXIS_SCROLL: c_uint = 26;
/** Axis constant: The movement of x position of a motion event.

- For a mouse, reports a difference of x position between the previous position.
This is useful when pointer is captured, in that case the mouse pointer doesn't
change the location but this axis reports the difference which allows the app
to see how the mouse is moved.*/
pub const AMOTION_EVENT_AXIS_RELATIVE_X: c_uint = 27;
/** Axis constant: The movement of y position of a motion event.

Same as #AMOTION_EVENT_AXIS_RELATIVE_X, but for y position.*/
pub const AMOTION_EVENT_AXIS_RELATIVE_Y: c_uint = 28;
/** Axis constant: Generic 1 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_1: c_uint = 32;
/** Axis constant: Generic 2 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_2: c_uint = 33;
/** Axis constant: Generic 3 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_3: c_uint = 34;
/** Axis constant: Generic 4 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_4: c_uint = 35;
/** Axis constant: Generic 5 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_5: c_uint = 36;
/** Axis constant: Generic 6 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_6: c_uint = 37;
/** Axis constant: Generic 7 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_7: c_uint = 38;
/** Axis constant: Generic 8 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_8: c_uint = 39;
/** Axis constant: Generic 9 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_9: c_uint = 40;
/** Axis constant: Generic 10 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_10: c_uint = 41;
/** Axis constant: Generic 11 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_11: c_uint = 42;
/** Axis constant: Generic 12 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_12: c_uint = 43;
/** Axis constant: Generic 13 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_13: c_uint = 44;
/** Axis constant: Generic 14 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_14: c_uint = 45;
/** Axis constant: Generic 15 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_15: c_uint = 46;
/** Axis constant: Generic 16 axis of a motion event.
The interpretation of a generic axis is device-specific.*/
pub const AMOTION_EVENT_AXIS_GENERIC_16: c_uint = 47;
/** Axis constant: X gesture offset axis of a motion event.

- For a touch pad, reports the distance that a swipe gesture has moved in the X axis, as a
  proportion of the touch pad's size. For example, if a touch pad is 1000 units wide, and a
  swipe gesture starts at X = 500 then moves to X = 400, this axis would have a value of
  -0.1.

These values are relative to the state from the last event, not accumulated, so developers
should make sure to process this axis value for all batched historical events.

This axis is only set on the first pointer in a motion event.*/
pub const AMOTION_EVENT_AXIS_GESTURE_X_OFFSET: c_uint = 48;
/** Axis constant: Y gesture offset axis of a motion event.

The same as {@link AMOTION_EVENT_AXIS_GESTURE_X_OFFSET}, but for the Y axis.*/
pub const AMOTION_EVENT_AXIS_GESTURE_Y_OFFSET: c_uint = 49;
/** Axis constant: X scroll distance axis of a motion event.

- For a touch pad, reports the distance that should be scrolled in the X axis as a result of
  the user's two-finger scroll gesture, in display pixels.

These values are relative to the state from the last event, not accumulated, so developers
should make sure to process this axis value for all batched historical events.

This axis is only set on the first pointer in a motion event.*/
pub const AMOTION_EVENT_AXIS_GESTURE_SCROLL_X_DISTANCE: c_uint = 50;
/** Axis constant: Y scroll distance axis of a motion event.

The same as {@link AMOTION_EVENT_AXIS_GESTURE_SCROLL_X_DISTANCE}, but for the Y axis.*/
pub const AMOTION_EVENT_AXIS_GESTURE_SCROLL_Y_DISTANCE: c_uint = 51;
/** Axis constant: pinch scale factor of a motion event.

- For a touch pad, reports the change in distance between the fingers when the user is making
  a pinch gesture, as a proportion of that distance when the gesture was last reported. For
  example, if the fingers were 50 units apart and are now 52 units apart, the scale factor
  would be 1.04.

These values are relative to the state from the last event, not accumulated, so developers
should make sure to process this axis value for all batched historical events.

This axis is only set on the first pointer in a motion event.*/
pub const AMOTION_EVENT_AXIS_GESTURE_PINCH_SCALE_FACTOR: c_uint = 52;
/** Axis constant: the number of fingers being used in a multi-finger swipe gesture.

- For a touch pad, reports the number of fingers being used in a multi-finger swipe gesture
  (with CLASSIFICATION_MULTI_FINGER_SWIPE).

Since CLASSIFICATION_MULTI_FINGER_SWIPE is a hidden API, so is this axis. It is only set on
the first pointer in a motion event.*/
pub const AMOTION_EVENT_AXIS_GESTURE_SWIPE_FINGER_COUNT: c_uint = 53;

/* These flags originate in RawEvents and are generally set in the key map.
 * NOTE: If you want a flag to be able to set in a keylayout file, then you must add it to
 * InputEventLabels.h as well. */

// Indicates that the event should wake the device.
pub const POLICY_FLAG_WAKE: c_uint = 0x00000001;

// Indicates that the key is virtual, such as a capacitive button, and should
// generate haptic feedback.  Virtual keys may be suppressed for some time
// after a recent touch to prevent accidental activation of virtual keys adjacent
// to the touch screen during an edge swipe.

pub const POLICY_FLAG_VIRTUAL: c_uint = 0x00000002;

// Indicates that the key is the special function modifier.
pub const POLICY_FLAG_FUNCTION: c_uint = 0x00000004;

// Indicates that the key represents a special gesture that has been detected by
// the touch firmware or driver.  Causes touch events from the same device to be canceled.
// This policy flag prevents key events from changing touch mode state.
pub const POLICY_FLAG_GESTURE: c_uint = 0x00000008;

// Indicates that key usage mapping represents a fallback mapping.
// Fallback mappings cannot be used to definitively determine whether a device
// supports a key code. For example, a HID device can report a key press
// as a HID usage code if it is not mapped to any linux key code in the kernel.
// However, we cannot know which HID usage codes that device supports from
// userspace through the evdev. We can use fallback mappings to convert HID
// usage codes to Android key codes without needing to know if a device can
// actually report the usage code.
pub const POLICY_FLAG_FALLBACK_USAGE_MAPPING: c_uint = 0x00000010;
